package com.easysoft.framework.copyright.model;

import com.easysoft.commons.utils.JSONUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

public class SysCopyright implements Serializable {

    /** 主键 */
    private String id;

    /** 登记日期 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date enrollTime;

    /** 作品名称 */
    private String workName;

    /** 作品类别 */
    private String worksCategory;

    /** 著作权人姓名/名称 */
    private String copyrightOwner;

    /** 创作完成日期 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date finishTime;

    /** 首次发表日期 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date fristTime;

    /** 作品数量 */
    private Integer workNum;

    /** 创作性质 */
    private String creativeNature;

    /** 国籍 */
    private String nationality;

    /** 省份 */
    private String province;

    /** 城市 */
    private String city;

    /** 作者姓名/名称 */
    private String authorName;

    /** 权利取得方式 */
    private String acquisiRights;

    /** 权利归属方式 */
    private String rightOwnership;

    /** 登记机构 */
    private String registreInstitu;

    /** 推荐/正常/禁用 默认禁用 */
    private Integer isStatus;

    /** 创建时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    private static final long serialVersionUID = 1L;

    /**
     * 返回主键
     *
     * @return ID
     */
    public String getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 返回登记日期
     *
     * @return ENROLL_TIME
     */
    public Date getEnrollTime() {
        return enrollTime;
    }

    /**
     * 设置登记日期
     *
     * @param enrollTime 登记日期
     */
    public void setEnrollTime(Date enrollTime) {
        this.enrollTime = enrollTime;
    }

    /**
     * 返回作品名称
     *
     * @return WORK_NAME
     */
    public String getWorkName() {
        return workName;
    }

    /**
     * 设置作品名称
     *
     * @param workName 作品名称
     */
    public void setWorkName(String workName) {
        this.workName = workName;
    }

    /**
     * 返回作品类别
     *
     * @return WORKS_CATEGORY
     */
    public String getWorksCategory() {
        return worksCategory;
    }

    /**
     * 设置作品类别
     *
     * @param worksCategory 作品类别
     */
    public void setWorksCategory(String worksCategory) {
        this.worksCategory = worksCategory;
    }

    /**
     * 返回著作权人姓名/名称
     *
     * @return COPYRIGHT_OWNER
     */
    public String getCopyrightOwner() {
        return copyrightOwner;
    }

    /**
     * 设置著作权人姓名/名称
     *
     * @param copyrightOwner 著作权人姓名/名称
     */
    public void setCopyrightOwner(String copyrightOwner) {
        this.copyrightOwner = copyrightOwner;
    }

    /**
     * 返回创作完成日期
     *
     * @return FINISH_TIME
     */
    public Date getFinishTime() {
        return finishTime;
    }

    /**
     * 设置创作完成日期
     *
     * @param finishTime 创作完成日期
     */
    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    /**
     * 返回首次发表日期
     *
     * @return FRIST_TIME
     */
    public Date getFristTime() {
        return fristTime;
    }

    /**
     * 设置首次发表日期
     *
     * @param fristTime 首次发表日期
     */
    public void setFristTime(Date fristTime) {
        this.fristTime = fristTime;
    }

    /**
     * 返回作品数量
     *
     * @return WORK_NUM
     */
    public Integer getWorkNum() {
        return workNum;
    }

    /**
     * 设置作品数量
     *
     * @param workNum 作品数量
     */
    public void setWorkNum(Integer workNum) {
        this.workNum = workNum;
    }

    /**
     * 返回创作性质
     *
     * @return CREATIVE_NATURE
     */
    public String getCreativeNature() {
        return creativeNature;
    }

    /**
     * 设置创作性质
     *
     * @param creativeNature 创作性质
     */
    public void setCreativeNature(String creativeNature) {
        this.creativeNature = creativeNature;
    }

    /**
     * 返回国籍
     *
     * @return NATIONALITY
     */
    public String getNationality() {
        return nationality;
    }

    /**
     * 设置国籍
     *
     * @param nationality 国籍
     */
    public void setNationality(String nationality) {
        this.nationality = nationality;
    }

    /**
     * 返回省份
     *
     * @return PROVINCE
     */
    public String getProvince() {
        return province;
    }

    /**
     * 设置省份
     *
     * @param province 省份
     */
    public void setProvince(String province) {
        this.province = province;
    }

    /**
     * 返回城市
     *
     * @return CITY
     */
    public String getCity() {
        return city;
    }

    /**
     * 设置城市
     *
     * @param city 城市
     */
    public void setCity(String city) {
        this.city = city;
    }

    /**
     * 返回作者姓名/名称
     *
     * @return AUTHOR_NAME
     */
    public String getAuthorName() {
        return authorName;
    }

    /**
     * 设置作者姓名/名称
     *
     * @param authorName 作者姓名/名称
     */
    public void setAuthorName(String authorName) {
        this.authorName = authorName;
    }

    /**
     * 返回权利取得方式
     *
     * @return ACQUISI_RIGHTS
     */
    public String getAcquisiRights() {
        return acquisiRights;
    }

    /**
     * 设置权利取得方式
     *
     * @param acquisiRights 权利取得方式
     */
    public void setAcquisiRights(String acquisiRights) {
        this.acquisiRights = acquisiRights;
    }

    /**
     * 返回权利归属方式
     *
     * @return RIGHT_OWNERSHIP
     */
    public String getRightOwnership() {
        return rightOwnership;
    }

    /**
     * 设置权利归属方式
     *
     * @param rightOwnership 权利归属方式
     */
    public void setRightOwnership(String rightOwnership) {
        this.rightOwnership = rightOwnership;
    }

    /**
     * 返回登记机构
     *
     * @return REGISTRE_INSTITU
     */
    public String getRegistreInstitu() {
        return registreInstitu;
    }

    /**
     * 设置登记机构
     *
     * @param registreInstitu 登记机构
     */
    public void setRegistreInstitu(String registreInstitu) {
        this.registreInstitu = registreInstitu;
    }

    public Integer getIsStatus() {
        return isStatus;
    }

    public void setIsStatus(Integer isStatus) {
        this.isStatus = isStatus;
    }

    /**
     * 返回创建时间
     *
     * @return CREATE_TIME
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return JSONUtils.object2Json(this);
    }
}